This invention generally relates to computer systems using disk based computer operating systems and more specifically addresses the loading of a program stored on a disk into memory of a computer system.
Several different disk based operating systems are in use in computer systems. For example, Microsoft Windows XP and UNIX are disk based operating systems that are utilized in a large number of computer systems. Other disk based operating systems are in use or have been utilized in computer systems that are no longer being produced.
FIG. 1 illustrates an exemplary computer system 10 that includes a computer 12 that is supported by peripherals such as monitor 14 and keyboard 16. Computer 12 is also linked to external network 18 such as by known communication protocols, e.g. Ethernet or a form of Internet Protocol. The computer 12 includes one or more microprocessors 20 that are supported by read-only memory (ROM) 22, random access memory (RAM) 24, and hard disk 26. This computer 12 can be used in a configuration where hard disk 26 does not exist and is replaced by disk 25 accessed via external network 18 with the assistance of a remote server or computer 27. An input/output (I/O) interface 28 supports communications between the microprocessor 20 and the external environment. The ROM 22 contains nonvolatile instructions such as are commonly read during the initial boot startup of the microprocessor 20. The RAM 24 supports various operational code and data utilized by the microprocessor 20 during the execution of a plurality of programs and tasks. Hard drive 26 provides nonvolatile storage of various programs and data, and typically provides for a substantial amount of storage that commonly exceeds the storage capacity of RAM 24. During the initial boot startup, basic instructions are typically fetched from ROM 22 and the hard disk that enables the processor 20 to load programs and data stored in the hard disk 26 into RAM 24 from which such programs are executed by the microprocessor 20.
FIG. 2 is an exemplary flow diagram illustrating how a microprocessor utilizing a UNIX disk based operating system typically processes requests for service, e.g. a request to load a program stored on the hard disk. In step 30 the microprocessor receives a request for service that may be initiated by a system call or an interrupt. A determination is made in step 32 of whether the request requires real-time processing. A NO determination by step 32 results in the request being granted a quantum of time (or time equivalents such as a predetermined number of cycles) to proceed with a task associated with the request in step 34. In step 36 a determination is made of whether the quantum has elapsed or the task has completed. A NO determination by step 36 results in processing returning to the beginning of step 36. A YES determination by step 36 results in the termination of the current processing at step 38. In step 40 the microprocessor is released to go to the next request. If the YES determination in step 36 was caused by the task having been completed, then the associated request for service is satisfied and no further processing requests associated with this completed task are required and hence no additional or supplemental requests will be put in a queue to cause additional processing by the microprocessor. If the YES determination step 36 was caused by the quantum time having elapsed, then the task associated with the request has not been completed and a supplemental request will be put in a queue to be acted upon by the microprocessor when the supplemental request is reached by the microprocessor. This permits a task requiring longer than the quantum time to be completed in a time multiplexed manner along with other tasks and operations required to be performed by the microprocessor.
A YES determination by step 32 indicates that real-time processing of the associated task is required. In accordance with real-time processing requirements, the processing of the real-time task is started as indicated in step 42. In step 44 a determination is made of whether the task is completed. A NO determination by step 44 results in processing continuing to the beginning of the step, i.e. the processing of the task continues. A YES determination by step 44 indicates that the task has been completed and the microprocessor is released from the processing of this task as indicated by step 40. Since the microprocessor continues to process a real-time process request until it is completed, this means that the processing of other requests and tasks by the microprocessor is deferred for the time interval required to conclude the processing of the currently running real-time task.
The processing of some real-time tasks in the disk based operating system computer environment explained with regard to FIG. 2 can present difficulties especially where other time critical requests or tasks are waiting to be started or for further processing. For example, a real-time request to load a new program of a substantial size, e.g. 10 Megabytes, from the disk operating system may require a substantial amount of processing time, e.g. several seconds. Since other programs and tasks will not be able to obtain processing from the microprocessor during this time, some waiting programs or tasks may result in a fault or failure due to a time critical need for processing that was not met. Thus, there exists a need to prevent tasks from excessively monopolizing the processing capability of the microprocessor to the detriment of other tasks, especially but not limited to, loading a program from a hard drive into RAM memory.